﻿namespace WMS6.Services
{
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.ServiceModel;
    using WMS6.Common;
    using WMS6.DataEntity;
    using WMS6.QueryEntity;

    [ServiceContract(Namespace="WMS6.Services")]
    public interface IBaseInfoDetailService
    {
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string DeleteDetail(List<string> mainID, List<string> subId, List<string> pk3, string className, PubParasInfo pubParasInfo);
        [FaultContract(typeof(FaultDetail)), OperationContract]
        DataSet GetAllDetailInfo(string className, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(AlternateSkuQueryEntity)), ServiceKnownType(typeof(FilterConfigDetailQueryEntity)), ServiceKnownType(typeof(InvSkuLocInfo)), ServiceKnownType(typeof(AuditDefinitionQueryEntity)), ServiceKnownType(typeof(RateDetailQueryEntity)), ServiceKnownType(typeof(GeneralLedgerDetailQueryEntity)), ServiceKnownType(typeof(TariffDetailQueryEntity)), ServiceKnownType(typeof(TaskRuleDetailQueryEntity)), ServiceKnownType(typeof(UdfReportSettingDetailQueryEntity)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(SkuClassQueryEntity)), ServiceKnownType(typeof(LotAttributeCodeQueryEntity)), ServiceKnownType(typeof(BomQueryEntity)), ServiceKnownType(typeof(BomDetailQueryEntity)), ServiceKnownType(typeof(PutawayRuleDetailQueryEntity)), ServiceKnownType(typeof(CalendarGroupDetailQueryEntity)), ServiceKnownType(typeof(SysCodeDetailQueryEntity)), OperationContract, ServiceKnownType(typeof(SubstituteSkuQueryEntity)), ServiceKnownType(typeof(SkuQueryEntity)), ServiceKnownType(typeof(RotationRuleDetailQueryEntity)), ServiceKnownType(typeof(PreallocateRuleDetailQueryEntity)), ServiceKnownType(typeof(AllocateRuleDetailQueryEntity))]
        DataSet GetDetaiInfolByQueryEntity(object detailQuery, string className, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(RotationRuleDetailInfo)), ServiceKnownType(typeof(PreallocateRuleDetailInfo)), ServiceKnownType(typeof(AllocateRuleDetailInfo)), ServiceKnownType(typeof(TaskRuleDetailInfo)), ServiceKnownType(typeof(FilterConfigDetailInfo)), ServiceKnownType(typeof(FilterConfigHeaderInfo)), ServiceKnownType(typeof(InvSkuLocInfo)), OperationContract, ServiceKnownType(typeof(RateDetailInfo)), ServiceKnownType(typeof(GeneralLedgerDetailInfo)), ServiceKnownType(typeof(TariffDetailInfo)), ServiceKnownType(typeof(CalendarGroupDetailInfo)), ServiceKnownType(typeof(UdfReportSettingDetailInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(SkuClassInfo)), ServiceKnownType(typeof(LotAttributeCodeInfo)), ServiceKnownType(typeof(AuditDefinitionInfo)), ServiceKnownType(typeof(AreaDetailInfo)), ServiceKnownType(typeof(BomInfo)), ServiceKnownType(typeof(BomDetailInfo)), ServiceKnownType(typeof(PutawayRuleDetailInfo)), ServiceKnownType(typeof(SysCodeDetailInfo)), ServiceKnownType(typeof(AlternateSkuInfo)), ServiceKnownType(typeof(SubstituteSkuInfo)), ServiceKnownType(typeof(SkuInfo))]
        object GetDetailInfoByID(string mainID, string subID, string pk3, string className, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SubstituteSkuInfo)), ServiceKnownType(typeof(SkuInfo)), ServiceKnownType(typeof(PreallocateRuleDetailInfo)), ServiceKnownType(typeof(AllocateRuleDetailInfo)), ServiceKnownType(typeof(TaskRuleDetailInfo)), ServiceKnownType(typeof(FilterConfigDetailInfo)), ServiceKnownType(typeof(InvSkuLocInfo)), ServiceKnownType(typeof(AuditDefinitionInfo)), OperationContract, ServiceKnownType(typeof(GeneralLedgerDetailInfo)), ServiceKnownType(typeof(TariffDetailInfo)), ServiceKnownType(typeof(CalendarGroupDetailInfo)), ServiceKnownType(typeof(UdfReportSettingDetailInfo)), ServiceKnownType(typeof(RotationRuleDetailInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(SkuClassInfo)), ServiceKnownType(typeof(RateDetailInfo)), ServiceKnownType(typeof(LotAttributeCodeInfo)), ServiceKnownType(typeof(AreaDetailInfo)), ServiceKnownType(typeof(BomInfo)), ServiceKnownType(typeof(BomDetailInfo)), ServiceKnownType(typeof(PutawayRuleDetailInfo)), ServiceKnownType(typeof(SysCodeDetailInfo)), ServiceKnownType(typeof(AlternateSkuInfo))]
        List<object> GetDetailInfoListByID(string mainID, string subID, string className, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(GeneralLedgerDetailInfo)), ServiceKnownType(typeof(BomDetailInfo)), ServiceKnownType(typeof(PutawayRuleDetailInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(SkuClassInfo)), ServiceKnownType(typeof(LotAttributeCodeInfo)), ServiceKnownType(typeof(AreaDetailInfo)), ServiceKnownType(typeof(BomInfo)), ServiceKnownType(typeof(SysCodeDetailInfo)), ServiceKnownType(typeof(AlternateSkuInfo)), ServiceKnownType(typeof(SubstituteSkuInfo)), ServiceKnownType(typeof(SkuInfo)), ServiceKnownType(typeof(RotationRuleDetailInfo)), ServiceKnownType(typeof(PreallocateRuleDetailInfo)), ServiceKnownType(typeof(AllocateRuleDetailInfo)), ServiceKnownType(typeof(TaskRuleDetailInfo)), ServiceKnownType(typeof(FilterConfigDetailInfo)), ServiceKnownType(typeof(FilterConfigHeaderInfo)), ServiceKnownType(typeof(InvSkuLocInfo)), ServiceKnownType(typeof(RateDetailInfo)), OperationContract, ServiceKnownType(typeof(TariffDetailInfo)), ServiceKnownType(typeof(CalendarGroupDetailInfo)), ServiceKnownType(typeof(UdfReportSettingDetailInfo))]
        string InsertDetail(object obj, string className, PubParasInfo pubParasInfo);
        [ServiceKnownType(typeof(SysCodeDetailInfo)), FaultContract(typeof(FaultDetail)), ServiceKnownType(typeof(SkuClassInfo)), ServiceKnownType(typeof(LotAttributeCodeInfo)), ServiceKnownType(typeof(AreaDetailInfo)), ServiceKnownType(typeof(BomInfo)), ServiceKnownType(typeof(BomDetailInfo)), ServiceKnownType(typeof(PutawayRuleDetailInfo)), ServiceKnownType(typeof(CalendarGroupDetailInfo)), ServiceKnownType(typeof(AlternateSkuInfo)), ServiceKnownType(typeof(SubstituteSkuInfo)), OperationContract, ServiceKnownType(typeof(RotationRuleDetailInfo)), ServiceKnownType(typeof(PreallocateRuleDetailInfo)), ServiceKnownType(typeof(AllocateRuleDetailInfo)), ServiceKnownType(typeof(TaskRuleDetailInfo)), ServiceKnownType(typeof(FilterConfigDetailInfo)), ServiceKnownType(typeof(FilterConfigHeaderInfo)), ServiceKnownType(typeof(InvSkuLocInfo)), ServiceKnownType(typeof(AuditDefinitionInfo)), ServiceKnownType(typeof(RateDetailInfo)), ServiceKnownType(typeof(GeneralLedgerDetailInfo)), ServiceKnownType(typeof(TariffDetailInfo)), ServiceKnownType(typeof(UdfReportSettingDetailInfo)), ServiceKnownType(typeof(SkuInfo))]
        string UpdateDetail(object obj, string className, PubParasInfo pubParasInfo);
        [OperationContract, FaultContract(typeof(FaultDetail))]
        string UpdateIsActive(List<string> mainID, List<string> subId, string isActive, string className, PubParasInfo pubParasInfo);
    }
}

